package com.xxx.encap;

/**
 * @version v1.0
 * @Description
 * @Author admin
 * @date 2021/7/12  10:29
 * @Copyright
 */
public class Person {
    //属性
    public String name;
    //权限修饰符private，也是封装的一种体现
    private int age;

    /*
     *  构造方法，构建对象时调用的方法,特点：
     *1.方法名要与类名保持一致
     *2.没有返回值
     *
     * 在java中，每个类至少有一个1构造方法，为了保证这一点，如果有用户没有
     * 显示定义任何构造方法，jvm将自动提供一个隐含的默认构造方法
     *
     * 如果类中显示定义了一个或多个构造方法，那么默认构造方法就没了
     *
     * 构造方法和一般方法的区别：
     * 1.语法不一样，一般方法有返回值，构造方法没有
     * 2.构造方法，对象创建时，会被调用一次
     *   一般方法，对象创建后，可被调用多次
     * 3.构造方法主要用于初始化对象
     *   一般方法主要用于提供功能
     *
     * */


//    public Person() {
//        System.out.println(".....");
//    }

    //当成员变量和局部变量重名时，通过this来区分
    //this：代表当前对象(创建对象时，哪个调用了this所在的方法，this就代表那个对象)
    public Person(String name, int age) {
        System.out.println(this);
        this.name = name;
        this.age = age;
    }
    public Person(){

    }

    //动作
    public void eat() {
        System.out.println("吃饭");
    }


public void setAge(int age){
    if (age < 0) {
        System.out.println("请输入有效数字");
    }else {
    this.age = age;
    }
}
}